load("@build_bazel_rules_android//android:rules.bzl", "android_library")

package(default_visibility = ["//visibility:public"])

licenses(["notice"])

java_library(
    name = "aes_gcm_hpke_aead",
    srcs = ["AesGcmHpkeAead.java"],
    deps = [
        ":hpke_aead",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_aes_gcm_jce",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "chacha20_poly1305_hpke_aead",
    srcs = ["ChaCha20Poly1305HpkeAead.java"],
    deps = [
        ":hpke_aead",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_cha_cha20_poly1305",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_cha_cha20_poly1305_jce",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hkdf_hpke_kdf",
    srcs = ["HkdfHpkeKdf.java"],
    deps = [
        ":hpke_kdf",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink/subtle:subtle_util_cluster",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hpke_aead",
    srcs = ["HpkeAead.java"],
    deps = ["@maven//:com_google_errorprone_error_prone_annotations"],
)

java_library(
    name = "hpke_context",
    srcs = ["HpkeContext.java"],
    deps = [
        ":hpke_aead",
        ":hpke_kdf",
        ":hpke_kem",
        ":hpke_kem_encap_output",
        ":hpke_kem_private_key",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "@maven//:com_google_code_findbugs_jsr305",
    ],
)

java_library(
    name = "hpke_decrypt",
    srcs = ["HpkeDecrypt.java"],
    deps = [
        ":hpke_aead",
        ":hpke_context",
        ":hpke_encrypt",
        ":hpke_kdf",
        ":hpke_kem",
        ":hpke_kem_private_key",
        ":nist_curves_hpke_kem_private_key",
        ":x25519_hpke_kem_private_key",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key",
        "//src/main/java/com/google/crypto/tink/internal:util",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hpke_encrypt",
    srcs = ["HpkeEncrypt.java"],
    deps = [
        ":aes_gcm_hpke_aead",
        ":chacha20_poly1305_hpke_aead",
        ":hkdf_hpke_kdf",
        ":hpke_aead",
        ":hpke_context",
        ":hpke_kdf",
        ":hpke_kem",
        ":nist_curves_hpke_kem",
        ":x25519_hpke_kem",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hpke_kdf",
    srcs = ["HpkeKdf.java"],
    deps = ["@maven//:com_google_errorprone_error_prone_annotations"],
)

java_library(
    name = "hpke_kem",
    srcs = ["HpkeKem.java"],
    deps = [
        ":hpke_kem_encap_output",
        ":hpke_kem_private_key",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hpke_kem_encap_output",
    srcs = ["HpkeKemEncapOutput.java"],
)

java_library(
    name = "hpke_kem_key_factory",
    srcs = ["HpkeKemKeyFactory.java"],
    deps = [
        ":hpke_kem_private_key",
        ":hpke_util",
        ":nist_curves_hpke_kem_private_key",
        ":x25519_hpke_kem_private_key",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key",
    ],
)

java_library(
    name = "hpke_kem_private_key",
    srcs = ["HpkeKemPrivateKey.java"],
    deps = [
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "hpke_primitive_factory",
    srcs = ["HpkePrimitiveFactory.java"],
    deps = [
        ":aes_gcm_hpke_aead",
        ":chacha20_poly1305_hpke_aead",
        ":hkdf_hpke_kdf",
        ":hpke_aead",
        ":hpke_kdf",
        ":hpke_kem",
        ":hpke_util",
        ":nist_curves_hpke_kem",
        ":x25519_hpke_kem",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
    ],
)

java_library(
    name = "hpke_private_key_manager",
    srcs = ["HpkePrivateKeyManager.java"],
    deps = [
        ":hpke_decrypt",
        ":hpke_encrypt",
        ":hpke_public_key_manager",
        ":hpke_util",
        "//proto:hpke_java_proto",
        "//proto:tink_java_proto",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
        "//src/main/java/com/google/crypto/tink:key_manager",
        "//src/main/java/com/google/crypto/tink:parameters",
        "//src/main/java/com/google/crypto/tink:private_key_manager",
        "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_proto_serialization",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding",
        "//src/main/java/com/google/crypto/tink/internal:key_manager_registry",
        "//src/main/java/com/google/crypto/tink/internal:legacy_key_manager_impl",
        "//src/main/java/com/google/crypto/tink/internal:mutable_key_creation_registry",
        "//src/main/java/com/google/crypto/tink/internal:mutable_parameters_registry",
        "//src/main/java/com/google/crypto/tink/internal:mutable_primitive_registry",
        "//src/main/java/com/google/crypto/tink/internal:primitive_constructor",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
        "//src/main/java/com/google/crypto/tink/subtle:x25519",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "//src/main/java/com/google/crypto/tink/util:secret_bytes",
        "@maven//:com_google_code_findbugs_jsr305",
    ],
)

java_library(
    name = "hpke_public_key_manager",
    srcs = ["HpkePublicKeyManager.java"],
)

java_library(
    name = "hpke_util",
    srcs = ["HpkeUtil.java"],
    deps = [
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters",
        "//src/main/java/com/google/crypto/tink/internal:util",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
    ],
)

java_library(
    name = "nist_curves_hpke_kem",
    srcs = ["NistCurvesHpkeKem.java"],
    deps = [
        ":hkdf_hpke_kdf",
        ":hpke_kem",
        ":hpke_kem_encap_output",
        ":hpke_kem_private_key",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "nist_curves_hpke_kem_private_key",
    srcs = ["NistCurvesHpkeKemPrivateKey.java"],
    deps = [
        ":hpke_kem_private_key",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "x25519_hpke_kem",
    srcs = ["X25519HpkeKem.java"],
    deps = [
        ":hkdf_hpke_kdf",
        ":hpke_kem",
        ":hpke_kem_encap_output",
        ":hpke_kem_private_key",
        ":hpke_util",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "//src/main/java/com/google/crypto/tink/subtle:x25519",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "x25519_hpke_kem_private_key",
    srcs = ["X25519HpkeKemPrivateKey.java"],
    deps = [
        ":hpke_kem_private_key",
        "//src/main/java/com/google/crypto/tink/subtle:x25519",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

# Android libraries

android_library(
    name = "aes_gcm_hpke_aead-android",
    srcs = ["AesGcmHpkeAead.java"],
    deps = [
        ":hpke_aead-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_aes_gcm_jce-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "chacha20_poly1305_hpke_aead-android",
    srcs = ["ChaCha20Poly1305HpkeAead.java"],
    deps = [
        ":hpke_aead-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_cha_cha20_poly1305-android",
        "//src/main/java/com/google/crypto/tink/aead/internal:insecure_nonce_cha_cha20_poly1305_jce-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hkdf_hpke_kdf-android",
    srcs = ["HkdfHpkeKdf.java"],
    deps = [
        ":hpke_kdf-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink/subtle:subtle_util_cluster-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hpke_aead-android",
    srcs = ["HpkeAead.java"],
    deps = ["@maven//:com_google_errorprone_error_prone_annotations"],
)

android_library(
    name = "hpke_context-android",
    srcs = ["HpkeContext.java"],
    deps = [
        ":hpke_aead-android",
        ":hpke_kdf-android",
        ":hpke_kem-android",
        ":hpke_kem_encap_output-android",
        ":hpke_kem_private_key-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key-android",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "@maven//:com_google_code_findbugs_jsr305",
    ],
)

android_library(
    name = "hpke_decrypt-android",
    srcs = ["HpkeDecrypt.java"],
    deps = [
        ":hpke_aead-android",
        ":hpke_context-android",
        ":hpke_encrypt-android",
        ":hpke_kdf-android",
        ":hpke_kem-android",
        ":hpke_kem_private_key-android",
        ":nist_curves_hpke_kem_private_key-android",
        ":x25519_hpke_kem_private_key-android",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt-android",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key-android",
        "//src/main/java/com/google/crypto/tink/internal:util-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hpke_encrypt-android",
    srcs = ["HpkeEncrypt.java"],
    deps = [
        ":aes_gcm_hpke_aead-android",
        ":chacha20_poly1305_hpke_aead-android",
        ":hkdf_hpke_kdf-android",
        ":hpke_aead-android",
        ":hpke_context-android",
        ":hpke_kdf-android",
        ":hpke_kem-android",
        ":nist_curves_hpke_kem-android",
        ":x25519_hpke_kem-android",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hpke_kdf-android",
    srcs = ["HpkeKdf.java"],
    deps = ["@maven//:com_google_errorprone_error_prone_annotations"],
)

android_library(
    name = "hpke_kem-android",
    srcs = ["HpkeKem.java"],
    deps = [
        ":hpke_kem_encap_output-android",
        ":hpke_kem_private_key-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hpke_kem_encap_output-android",
    srcs = ["HpkeKemEncapOutput.java"],
)

android_library(
    name = "hpke_kem_key_factory-android",
    srcs = ["HpkeKemKeyFactory.java"],
    deps = [
        ":hpke_kem_private_key-android",
        ":hpke_util-android",
        ":nist_curves_hpke_kem_private_key-android",
        ":x25519_hpke_kem_private_key-android",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key-android",
    ],
)

android_library(
    name = "hpke_kem_private_key-android",
    srcs = ["HpkeKemPrivateKey.java"],
    deps = [
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "hpke_primitive_factory-android",
    srcs = ["HpkePrimitiveFactory.java"],
    deps = [
        ":aes_gcm_hpke_aead-android",
        ":chacha20_poly1305_hpke_aead-android",
        ":hkdf_hpke_kdf-android",
        ":hpke_aead-android",
        ":hpke_kdf-android",
        ":hpke_kem-android",
        ":hpke_util-android",
        ":nist_curves_hpke_kem-android",
        ":x25519_hpke_kem-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
    ],
)

android_library(
    name = "hpke_private_key_manager-android",
    srcs = ["HpkePrivateKeyManager.java"],
    deps = [
        ":hpke_decrypt-android",
        ":hpke_encrypt-android",
        ":hpke_public_key_manager-android",
        ":hpke_util-android",
        "//proto:hpke_java_proto_lite",
        "//proto:tink_java_proto_lite",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt-android",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt-android",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access-android",
        "//src/main/java/com/google/crypto/tink:key_manager-android",
        "//src/main/java/com/google/crypto/tink:parameters-android",
        "//src/main/java/com/google/crypto/tink:private_key_manager-android",
        "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_private_key-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_proto_serialization-android",
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_public_key-android",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding-android",
        "//src/main/java/com/google/crypto/tink/internal:key_manager_registry-android",
        "//src/main/java/com/google/crypto/tink/internal:legacy_key_manager_impl-android",
        "//src/main/java/com/google/crypto/tink/internal:mutable_key_creation_registry-android",
        "//src/main/java/com/google/crypto/tink/internal:mutable_parameters_registry-android",
        "//src/main/java/com/google/crypto/tink/internal:mutable_primitive_registry-android",
        "//src/main/java/com/google/crypto/tink/internal:primitive_constructor-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
        "//src/main/java/com/google/crypto/tink/subtle:x25519-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "//src/main/java/com/google/crypto/tink/util:secret_bytes-android",
        "@maven//:com_google_code_findbugs_jsr305",
    ],
)

android_library(
    name = "hpke_public_key_manager-android",
    srcs = ["HpkePublicKeyManager.java"],
)

android_library(
    name = "hpke_util-android",
    srcs = ["HpkeUtil.java"],
    deps = [
        "//src/main/java/com/google/crypto/tink/hybrid:hpke_parameters-android",
        "//src/main/java/com/google/crypto/tink/internal:util-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
    ],
)

android_library(
    name = "nist_curves_hpke_kem-android",
    srcs = ["NistCurvesHpkeKem.java"],
    deps = [
        ":hkdf_hpke_kdf-android",
        ":hpke_kem-android",
        ":hpke_kem_encap_output-android",
        ":hpke_kem_private_key-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "nist_curves_hpke_kem_private_key-android",
    srcs = ["NistCurvesHpkeKemPrivateKey.java"],
    deps = [
        ":hpke_kem_private_key-android",
        "//src/main/java/com/google/crypto/tink/subtle:elliptic_curves-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "x25519_hpke_kem-android",
    srcs = ["X25519HpkeKem.java"],
    deps = [
        ":hkdf_hpke_kdf-android",
        ":hpke_kem-android",
        ":hpke_kem_encap_output-android",
        ":hpke_kem_private_key-android",
        ":hpke_util-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "//src/main/java/com/google/crypto/tink/subtle:x25519-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "x25519_hpke_kem_private_key-android",
    srcs = ["X25519HpkeKemPrivateKey.java"],
    deps = [
        ":hpke_kem_private_key-android",
        "//src/main/java/com/google/crypto/tink/subtle:x25519-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "legacy_full_hybrid_decrypt-android",
    srcs = ["LegacyFullHybridDecrypt.java"],
    deps = [
        "//proto:tink_java_proto_lite",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt-android",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access-android",
        "//src/main/java/com/google/crypto/tink:registry-android",
        "//src/main/java/com/google/crypto/tink/internal:legacy_proto_key-android",
        "//src/main/java/com/google/crypto/tink/internal:output_prefix_util-android",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization-android",
        "//src/main/java/com/google/crypto/tink/internal:util-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "legacy_full_hybrid_encrypt-android",
    srcs = ["LegacyFullHybridEncrypt.java"],
    deps = [
        "//proto:tink_java_proto_lite",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt-android",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access-android",
        "//src/main/java/com/google/crypto/tink:registry-android",
        "//src/main/java/com/google/crypto/tink/internal:legacy_proto_key-android",
        "//src/main/java/com/google/crypto/tink/internal:output_prefix_util-android",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization-android",
        "//src/main/java/com/google/crypto/tink/subtle:bytes-android",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "legacy_full_hybrid_decrypt",
    srcs = ["LegacyFullHybridDecrypt.java"],
    deps = [
        "//proto:tink_java_proto",
        "//src/main/java/com/google/crypto/tink:hybrid_decrypt",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
        "//src/main/java/com/google/crypto/tink:registry",
        "//src/main/java/com/google/crypto/tink/internal:legacy_proto_key",
        "//src/main/java/com/google/crypto/tink/internal:output_prefix_util",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization",
        "//src/main/java/com/google/crypto/tink/internal:util",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

java_library(
    name = "legacy_full_hybrid_encrypt",
    srcs = ["LegacyFullHybridEncrypt.java"],
    deps = [
        "//proto:tink_java_proto",
        "//src/main/java/com/google/crypto/tink:hybrid_encrypt",
        "//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
        "//src/main/java/com/google/crypto/tink:registry",
        "//src/main/java/com/google/crypto/tink/internal:legacy_proto_key",
        "//src/main/java/com/google/crypto/tink/internal:output_prefix_util",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization",
        "//src/main/java/com/google/crypto/tink/subtle:bytes",
        "@maven//:com_google_errorprone_error_prone_annotations",
    ],
)

android_library(
    name = "ecies_proto_serialization-android",
    srcs = ["EciesProtoSerialization.java"],
    deps = [
        "//proto:common_java_proto_lite",
        "//proto:ecies_aead_hkdf_java_proto_lite",
        "//proto:tink_java_proto_lite",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key-android",
        "//src/main/java/com/google/crypto/tink:secret_key_access-android",
        "//src/main/java/com/google/crypto/tink:tink_proto_parameters_format-android",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_parameters-android",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_private_key-android",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_public_key-android",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding-android",
        "//src/main/java/com/google/crypto/tink/internal:enum_type_proto_converter-android",
        "//src/main/java/com/google/crypto/tink/internal:key_parser-android",
        "//src/main/java/com/google/crypto/tink/internal:key_serializer-android",
        "//src/main/java/com/google/crypto/tink/internal:mutable_serialization_registry-android",
        "//src/main/java/com/google/crypto/tink/internal:parameters_parser-android",
        "//src/main/java/com/google/crypto/tink/internal:parameters_serializer-android",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization-android",
        "//src/main/java/com/google/crypto/tink/internal:proto_parameters_serialization-android",
        "//src/main/java/com/google/crypto/tink/internal:util-android",
        "//src/main/java/com/google/crypto/tink/util:bytes-android",
        "//src/main/java/com/google/crypto/tink/util:secret_big_integer-android",
        "//src/main/java/com/google/crypto/tink/util:secret_bytes-android",
        "@maven//:com_google_code_findbugs_jsr305",
        "@maven//:com_google_protobuf_protobuf_javalite",
    ],
)

java_library(
    name = "ecies_proto_serialization",
    srcs = ["EciesProtoSerialization.java"],
    deps = [
        "//proto:common_java_proto",
        "//proto:ecies_aead_hkdf_java_proto",
        "//proto:tink_java_proto",
        "//src/main/java/com/google/crypto/tink:accesses_partial_key",
        "//src/main/java/com/google/crypto/tink:secret_key_access",
        "//src/main/java/com/google/crypto/tink:tink_proto_parameters_format",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_parameters",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_private_key",
        "//src/main/java/com/google/crypto/tink/hybrid:ecies_public_key",
        "//src/main/java/com/google/crypto/tink/internal:big_integer_encoding",
        "//src/main/java/com/google/crypto/tink/internal:enum_type_proto_converter",
        "//src/main/java/com/google/crypto/tink/internal:key_parser",
        "//src/main/java/com/google/crypto/tink/internal:key_serializer",
        "//src/main/java/com/google/crypto/tink/internal:mutable_serialization_registry",
        "//src/main/java/com/google/crypto/tink/internal:parameters_parser",
        "//src/main/java/com/google/crypto/tink/internal:parameters_serializer",
        "//src/main/java/com/google/crypto/tink/internal:proto_key_serialization",
        "//src/main/java/com/google/crypto/tink/internal:proto_parameters_serialization",
        "//src/main/java/com/google/crypto/tink/internal:util",
        "//src/main/java/com/google/crypto/tink/util:bytes",
        "//src/main/java/com/google/crypto/tink/util:secret_big_integer",
        "//src/main/java/com/google/crypto/tink/util:secret_bytes",
        "@maven//:com_google_code_findbugs_jsr305",
        "@maven//:com_google_protobuf_protobuf_java",
    ],
)
